package org.yzhzc.system.domain.question.dto;

import lombok.EqualsAndHashCode;
import org.yzhzc.common.core.domain.PageQueryDTO;
import lombok.Data;

import java.util.Set;

/**
 * QuestionQueryDTO 是用于查询问题的 DTO (数据传输对象)。
 * 该类继承自 PageQueryDTO，支持分页查询，并包含了与查询相关的其他参数。
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class QuestionQueryDTO extends PageQueryDTO {

    /**
     * 难度级别，用于过滤问题的难度。
     * 可选值可能是：1（简单）、2（中等）、3（困难）等。
     */
    private Integer difficulty;

    /**
     * 问题标题，用于模糊查询问题标题。
     * 用户可以根据标题关键字查询相关的问题。
     */
    private String title;

    /**
     * 排除的 ID 字符串，用于排除特定问题。
     * 该字段一般与数据库查询中需要排除某些问题的逻辑一起使用。
     * 格式：可能是以逗号分隔的多个 ID，例如 "1,2,3"。
     */
    private String excludeIdStr;

    /**
     * 排除的 ID 集合，用于排除特定问题。
     * 与 excludeIdStr 类似，但以 Set 形式传递，避免重复的 ID。
     * 该字段用于查询中排除某些问题的逻辑。
     */
    private Set<Long> excludeIdSet;
}
